package com.bigbee.recursion;
/**
 * 递归
 * @author gyf
 *
 */
public class recursion {

	/*
	 * 问题描述：求解Fibonacci数列的第n个位置的值？（斐波纳契数列（Fibonacci Sequence），又称黄金分割数列，
	 * 指的是这样一个数列：1、1、2、3、5、8、13、21、……
	 * 在数学上，斐波纳契数列以如下被以递归的方法定义：F1=1,F2=1,Fn=F（n-1）+F（n-2）（n>2,n∈N*））。
	 */
	public static int caculate(int n){
		if( n == 1 || n == 2){
			return 1;
		}else{
//			return caculate(n)+caculate(n - 1);   //这样会报内存溢出  java.lang.StackOverflowError  原因在于caculate(n)没有出口，一直在循环里
			return caculate(n - 1)+caculate(n - 2);
		}
		
	}
	
	public static void main(String[] args) {
		int n = 8;
		int m = caculate(n);
		System.out.println(m);                   //21
	}
	
}
